//当前模块：API进行统一管理
// requests相当于axios
import requests from './request'
// 引入mockAjax文件
import mockRequests from './mockAjax'


//下面的api都是用配置的半成品的axios，再传一些主要的参数就行了
//发送axios配置下面的主要参数也行，但是半成品的axios都是axios都要做的一些事情，配置了四个：路径前面的统一路径；响应时间的限制；请求拦截器；响应拦截器

//三级联动接口
///api/product/getBaseCategoryList get 无参数

//发请求:axios发请求返回结果是Promise对象
// 返回一个结果，让使用该模块的使用者能拿到一个响应体，就是成功和失败的值

export const reqCategoryList = () => requests({ url: '/product/getBaseCategoryList', method: 'get' });

//获取banner（home首页轮播图接口）
export const reqGetBannerList = () => mockRequests.get('/banner');

//获取floor数据
// 因为这配置的函数，是不带参数的，当使用该函数时，不用传参的，参数都用动态绑定送到vuex处理了
export const reqFloorList = () => mockRequests.get('/floor');

//获取搜索榄块数据地址:/api/list请求方式:post参数:需要带参数
// {
//     "category3Id": "61",
//     "categoryName": "手机",
//     "keyword": "小米",
//     "order": "1:desc",
//     "pageNo": 1,
//     "pageSize": 10,
//     "props": ["1:1700-2799:价格", "2:6.65-6.74英寸:屏幕尺寸"],
//     "trademark": "4:小米"
//   }
//当前这个函数需不需要接受外部传递参数
//当前这个接口（获取搜索模块的数据），给服务器传递一个默认参数【至少是一个空对象】
export const reqGetSearchInfo = (params) => requests({ url: "/list", method: "post", data: params })

//获取产品详情信息的接口，RUL：/api/item/{skuId},请求方式get
export const reqGoodsInfo = (skuId) => requests({ url: `/item/${skuId}`, method: 'get' });

// 将产品添加到购物车中（获取更新某一个产品的个数）
// /api/cart/addToCart/{ skuId }/{ skuNum } post
export const reqAddOrUpdateShopCart = (skuId, skuNum) => requests({ url: `/cart/addToCart/${skuId}/${skuNum}`, method: 'post' })

// 获取购物车列表数据接口
//URL:/api/cart/cartList  method:get
export const reqCartList = () => requests({ url: '/cart/cartList', method: 'get' });

//删除购物产品的接口
//URL :/api/cart/deleteCart/{skuId}  method:DELETE
export const reqDeleteCarById = (skuId) => requests({ url: `/cart/deleteCart/${skuId}`, method: 'delete' });

//修改商品的选中状态
//URL:/api/cart/checkCart/{skuId}/{isChecked} method:get
export const reqUpdateCheckedById = (skuId, isChecked) => requests({ url: `/cart/checkCart/${skuId}/${isChecked}`, method: 'get' });
//获取验证码
///api/user/passport/sendCode/{phone}，method：get
export const reqGetCode = (phone) => requests({ url: `/user/passport/sendCode/${phone}`, method: 'get' });
//注册
//url:/api/user/passport/register method:post phone code password |
export const requserRegister = (data) => requests({ url: `/user/passport/register`, data, method: 'post' });
//登录
//URL:/api/user/passport/login   post, 参数：phone、password
export const reqUserLogin = (data) => requests({ url: `/user/passport/login`, data, method: 'post' });

//获取用户信息【需要带用户的token向服务器要用户信息】
//URL/api/user/passport/auth/getUserInfo  get
//token用请求头带过去
export const reqUserInfo = () => requests({ url: `/user/passport/auth/getUserInfo`, method: 'get' });
//退出登录
//URL:/api/user/passport/logout get 
export const reqLogout = () => requests({ url: '/user/passport/logout', method: 'get' });
//获取用户地址信息
///user/userAddress/auth/findUserAddressList  get,请求有token的，就会有相应的信息返回，这交给后天处理就行了
export const reqAddressInfo = () => requests({ url: '/user/userAddress/auth/findUserAddressList', method: 'get' });
//获取商品清单
//URL:/ api/order/auth/trade  method:get
export const reqOrderInfo = () => requests({ url: '/order/auth/trade', method: 'get' });

// 下面的开始用我们配置在vm身上的$API属性来发ajax

//提交订单的接口
///api/order/auth/submitOrder?tradeNo={tradeNo}    post
export const reqSubmitOrder = (tradeNo, data) => requests({ url: `/order/auth/submitOrder?tradeNo=${tradeNo}`, data, method: 'post' });

//获取支付信息
//URL:/api/payment/weixin/createNative/ {orderId} GET
export const reqPayInfo = (orderId) => requests({ url: `/payment/weixin/createNative/${orderId}`, method: 'get' });

//获取支付订单状态
//URL/api/payment/weixin/queryPayStatus/{orderId}   get
export const reqPayStatus = (orderId) => requests({ url: `payment/weixin/queryPayStatus/${orderId}`, method: 'get' });
//获取个人中心的数据
//api/order/auth/{page}/{limit}   get
export const reqMyOrderList = (page, limit) => requests({ url: `/order/auth/${page}/${limit}`, method: 'get' });